import type {
  EntityApi,
  EntityReq,
  EntityModel,
  EntityList,
  EntityPage,
  EntityTotal,
  EntityKey,
  EntityKeyList,
  EntityCreateReq,
  EntityUpdateReq,
} from "jmash-core";

// 短消息模板接口
export interface SmsTemplateApi extends EntityApi {}

// 短消息模板查询
export interface SmsTemplateReq extends EntityReq {
  // 租户
  tenant?: string;
  // 模版类型
  templateType?: string;
  // 是否包含模板类型
  hasTemplateType?: boolean;
  //  应用配置code
  configCode?: string;
}

// 短消息模板实体
export interface SmsTemplateModel extends EntityModel {
  //  模板ID
  templateId?: string;
  //  模板CODE
  templateCode?: string;
  //  模板名称
  templateName?: string;
  //  应用配置code
  configCode?: string;
  //  工单号
  orderId?: string;
  //  模板内容
  templateContent?: string;
  //  模板类型
  templateType?: string;
  //  审核状态
  auditStatus?: string;
  //  创建人
  createBy?: string;
  //  创建时间
  createTime?: string;
  //模版参数
  templateParams?: SmsBasicReq[];
  // 短信签名
  signName?: string;
}
// 表格
export interface SmsBasicReq {
  // key
  key: string;
  // 内容
  content: string;
}
// 发送短信
export interface SmsCaptchaReq extends EntityReq {
  // 租户
  tenant?: string;
  // 手机号
  mobilePhone?: string;
  // 短信签名
  smsSign?: string;
  // 模板编码
  templateCode?: string;
  //模版参数
  params?: Record<string, string>;
  // 是否指定服务厂商
  hasProvider?: boolean;
  // 服务厂商
  provider?: string;
  // 应用配置编码
  configCode?: string;
}
// 发送结果
export interface SmsReap {
  // 是否成功
  success?: boolean;
  // 测试结果
  reason?: string;
}

//短消息模板列表
export interface SmsTemplateList extends EntityList {
  // 内容
  results: Array<SmsTemplateModel>;
}

// 短消息模板分页
export interface SmsTemplatePage extends EntityPage {
  // 当前页内容
  results: Array<SmsTemplateModel>;
  // 本页小计
  subTotalDto: SmsTemplateModelTotal;
  // 合计
  totalDto: SmsTemplateModelTotal;
}

// 合计
export interface SmsTemplateModelTotal extends EntityTotal {
  // 总记录数
  totalSize: number;
}

// 短消息模板主键
export interface SmsTemplateKey extends EntityKey {
  // 租户
  tenant?: string;
  templateId?: string;
}

//短消息模板List
export interface SmsTemplateKeyList extends EntityKeyList {
  // 租户
  tenant?: string;
  templateId?: Array<string>;
}

// 短消息模板新增实体
export interface SmsTemplateCreateReq extends EntityCreateReq {
  // 模板ID
  templateId?: string;
  // 模板CODE
  templateCode?: string;
  // 模板名称
  templateName?: string;
  // 应用配置code
  configCode?: string;
  // 工单号
  orderId?: string;
  // 模板内容
  templateContent?: string;
  // 模板类型
  templateType?: string;
  // 审核状态
  auditStatus?: string;
}

// 短消息模板修改实体
export interface SmsTemplateUpdateReq extends EntityUpdateReq {
  // 模板ID
  templateId?: string;
  // 模板CODE
  templateCode?: string;
  // 模板名称
  templateName?: string;
  // 应用配置code
  configCode?: string;
  // 工单号
  orderId?: string;
  // 模板内容
  templateContent?: string;
  // 模板类型
  templateType?: string;
  // 审核状态
  auditStatus?: string;
}

export type SmsTemplateFormReq = SmsTemplateCreateReq | SmsTemplateUpdateReq;



// 上移下移
export interface SmsTemplateMoveKey {
  // 租户
  tenant?: string;
  templateId?: string;
  up?: boolean;
}

// 启用/禁用
export interface SmsTemplateEnableKey {
  // 租户
  tenant?: string;
  templateId?: string;
  enable?: boolean;
}
